// let proxy = "http://data.cngy.gov.cn/";
let proxy = "https://mockapi.eolink.com/";
const path = require("path");
const isPro = Object.is(process.env.NODE_ENV, "production");
// const isPro = process.env.NODE_ENV === "production";
// mode:isPro?'production':'development'

const proxyURL = !isPro ? proxy : "";
module.exports = {
  // 部署应用包时的基本 URL。用法和 webpack 本身的 output.publicPath 一致
  publicPath: "/",

  // build时构建文件的目录 构建时传入
  outputDir: "dist",

  // build时放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir 的) 目录
  assetsDir: "static",

  // 指定生成的 index.html 的输出路径 (相对于 outputDir)。也可以是一个绝对路径。
  indexPath: "indexmain.html",

  // 默认在生成的静态资源文件名中包含hash以控制缓存
  filenameHashing: true,

  // 是否在开发环境下通过 eslint-loader 在每次保存时 lint 代码 (在生产构建时禁用 eslint-loader)
  // lintOnSave: process.env.NODE_ENV !== "production",
  lintOnSave: true,

  // 是否使用包含运行时编译器的 Vue 构建版本
  runtimeCompiler: false,

  // Babel 显式转译列表
  transpileDependencies: [],

  pluginOptions: {
    //   // 为每个vue组件全局引入改变量文件，无需在vue文件手动引入等繁琐操作即可使用全局变量
    "style-resources-loader": {
      preProcessor: "less",
      patterns: [path.resolve(__dirname, "src/assets//styles/common/themeStyle.less")],
    },
  },
  //此时在进行打包的时候就不会出现.map文件
  productionSourceMap: false,
  devServer: {
    open: true,
    host: "127.0.0.1",
    port: 997,
    // https: false, // true 配置之后可使用生成 https://localhost:8080/
    hotOnly: false, // 热更新（webpack已实现了，这里false即可）
    //跨域
    proxy: {
      "/api": {
        //目标路径
        target: proxyURL,
        // 允许跨域
        changeOrigin: true,
        //重写路径
        pathRewrite: {
          "^/api": "",
        },
      },
    },
  },
  chainWebpack: config => {
    //最小化代码
    config.optimization.minimize(true);
    //分割代码
    config.optimization.splitChunks({
      chunks: "all",
    });
    //开启图片压缩
    // config.module
    //   .rule("images")
    //   .test(/\.(png|jpe?g|gif|svg)(\?.*)?$/)
    //   .use("image-webpack-loader")
    //   .loader("image-webpack-loader")
    //   .options({ bypassOnDebug: true })
    //   .end();
  },
  // parallel: !isPro ? false:require("os").cpus().length > 1,
};
